import java.util.*;

public class HashMapTest {
    public static void main(String[] args) {
        Map<Integer, List<Integer>> hMap=new HashMap<>();
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        hMap.put(1,list);
        System.out.println(hMap);// {1=[1]}
        List<Integer> list2 = hMap.get(1);// 所以这是引用容器中的对象
        list2.add(2);
        System.out.println(hMap);// {1=[1, 2]}


        Map<Integer,Integer> map=new HashMap<>();
        map.getOrDefault(1,2);

        Set<List<String>> set=new TreeSet<>();
        List<String> li=new ArrayList<>();
        li.add("aaaa");
        li.add("bbbb");
        // set.add(li);// java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Comparable

        System.out.println("######################");
        HashMap<String, Integer> hashMap = new HashMap<>();
        int i=0;
        int j=0;
        hashMap.put("a",i++);// 先存再自加
        hashMap.put("b",++j);// 先自加再存
        System.out.println(hashMap+";i="+i+";j="+j);// {a=0, b=1};i=1;j=1
        Integer c1 = hashMap.getOrDefault("c", i++);// 结果为原来的
        Integer c2 = hashMap.getOrDefault("c", ++j);// 结果为自加后的
        System.out.println("c1="+c1+";c2="+c2);// c1=1;c2=2
    }
}
